/*
题目描述
给你一个不超过 100 的数n ，和一个不超过 100 的数字k ，要求从数n 中去掉k 个数字，然后使得去掉k 个数之后，n 最小。

输入格式
输入包含两个整数 n和 k，其中n和k均不超过 100。

输出格式
输出去掉 k 个数字后得到的最小数字。

输入样例
1432219 3
输出样例
1219
*/
#include <iostream>
#include <string>
#include <stack>
#include <algorithm>
using namespace std;

int main() {
    string n;
    int k;
    cin >> n >> k;

    stack<char> st;
    for (char c : n) {
        // 如果当前数字小于栈顶数字，并且还有机会删除
        while (!st.empty() && k > 0 && st.top() > c) {
            st.pop();
            k--;
        }
        st.push(c);
    }

    // 如果还有未删完的 k，继续从末尾删除
    while (k > 0 && !st.empty()) {
        st.pop();
        k--;
    }

    // 构建结果
    string result;
    while (!st.empty()) {
        result += st.top();
        st.pop();
    }
    reverse(result.begin(), result.end());

    // 去掉前导零
    int i = 0;
    while (i < (int)result.size() && result[i] == '0') {
        i++;
    }
    result = result.substr(i);

    // 如果全部删完或结果为空，则为 0
    if (result.empty()) {
        result = "0";
    }

    cout << result << endl;
    return 0;
}
